#ifndef DATABASEHANDLER_H
#define DATABASEHANDLER_H

#include <QObject>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include <QString>
#include <QDebug>
#include <QVariant>
#include <QSqlRecord>
#include <QJsonArray>
#include <QJsonDocument>
#include <QJsonObject>

#define DATABASE_PATH ("../HospitalManagement.db")

class DatabaseHandler : public QObject
{
    Q_OBJECT

public:
    explicit DatabaseHandler(QObject *parent = nullptr);

    // 连接数据库
    bool connectToDatabase(const QString &dbName);

    // 执行 SQL 语句
    bool executeQuery(QSqlQuery &query, const QString &queryStr);

    // 获取数据
    void fetchData(const QString &queryStr);

    // 打印数据
    void printData() const;

signals:

private:
    QSqlDatabase db;               // 数据库连接
    QList<QVariantList> dataContainer; // 数据存储容器
    QString dataStream;            // 数据流
    QJsonArray dataArrayJson;      // JSON 数组
    QJsonObject result;            // JSON 封装结果
};

#endif // DATABASEHANDLER_H
